c++ - WaitForSingleObject 问题
全部标签 我试图通过在PE文件末尾添加一个额外的节头并在其中编写shellcode来进行PE感染。我已经添加了额外的部分并在其中编写了shellcode,并将原始入口点(OEP)更改为新添加的部分并且它执行得很好;我的意思是我的shellcode运行良好,但现在我想恢复主进程,为此我需要再次将修改后的入口点更改为OEP。但是,我无法弄清楚。请告诉我是否有任何方法可以在执行shellcode后恢复主进程。而且,我也试过这个blog,但它也不起作用,因为作者编写了内联汇编代码并放置了一些占位符以在运行时恢复OEP,这将动态嵌入到shellcode中。我正在考虑编写一个包含JMPto_OEP的shel
我正在设计一个在Win2000、XP和Vista上以LocalSystem帐户运行的服务。它将需要访问用户注册表配置单元,有时需要很长时间,无论是在用户登录时,还是在用户未登录时(如果配置文件是本地的。如果配置文件是漫游且未加载,我不会尝试加载它。)如果用户已登录,我可以通过各种方式(例如,从其资源管理器进程,或通过从服务控制管理器接收登录事件)获取用户访问token,然后使用ImpersonateLoggedOnUser和RegOpenCurrentUser访问用户的配置单元。但是,如果用户在我模拟并打开他的配置单元时从开始菜单中选择注销,会有什么影响?是否会阻止注销?我的模拟会被终
在wndproc中将窗口“最小化”到托盘后,我无法恢复窗口:caseWM_SIZE:if(wparam==SIZE_MINIMIZED){ShowWindow(hwnd,SW_HIDE);}break;托盘消息处理程序如下所示:caseTRAY_ICON_MESSAGE:switch(lparam){caseWM_LBUTTONDOWN:ShowWindow(hwnd,SW_RESTORE);BringWindowToTop(hwnd);SetFocus(hwnd);break;//...该窗口确实会重新出现,但始终隐藏在其他窗口下方并且不会出现在顶部。SetFocus()和Bring
有没有什么方法可以监控Windows环境中的低级键盘Hook。假设我正在制作一个试图找到键盘记录器的程序。 最佳答案 >没有官方API可以查询已安装的键盘钩子(Hook)。是的,有。(你还太小,不知道这个……)您必须阅读PEB。参见Win32apiGroup所有Windows源代码(每个api,未记录或未记录)都已被反汇编 关于c-监控低级Hook[C],我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com
如果您对此有任何帮助,我将不胜感激:我想为我的c库编写一个扩展。我创建了使用库libzmq(用C++编写)的文件zmq.cpp。我使用rubyextconf.rb创建了makefile,然后运行nmake。一切顺利。Nmake生成的文件librbzmq-i386-mswin32.deflibrbzmq-i386-mswin32.liblibrbzmq-i386-mswin32.explibrbzmq.solibrbzmq.so.manifest这一切都是在WindowsXP中完成的。然后我有一个测试程序,在我的第一行有:require'librbzmq'当我尝试使用运行我的测试
我已将新库添加到我的应用程序(多个项目-DLL)-SQLite,以执行一些内存缓存。只有一个库/项目受此更改影响-Lib1。构建顺利进行。所有库都已成功构建且未报告任何错误,包括几个Com对象。如果我尝试注册com对象,我会得到TheDLLcouldnotbeloaded。检查以确保所有必需的应用程序运行时文件和其他依赖DLL在组件DLL的目录或系统路径中可用。消息。但是所有的库都在同一个地方。一切都在路上。该项目的拷贝可以很好地构建和注册(当然没有对SqlLite进行的少量更改)。Dependencywalker报告没有问题奇怪的是,如果我尝试注册com对象的DLL(使用regsvr
我们想强制加密进出客户SQL数据库的数据。目前,我们使用SQLManagementStudio(查询分析器)和我们的自定义应用程序通过ODBCDSN访问客户数据库。是的,我知道这不是“最佳实践”,但我现在必须处理它。无论如何,我的任务是加密我们和他们之间管道上的数据。我找到了很多关于如何在SQL客户端和服务器之间建立连接的信息,但关于如何在这种情况下使用ODBCDSN的信息却很少。请注意,我不想知道如何加密数据库,只想知道如何加密通过“管道”的数据。1)DSN向导中有一个名为“对数据使用强加密”的复选框——该选项没有可用的帮助。谁能向我解释一下它如何与SQLServer和客户端配置中的
假设您有一些来自unix世界的源代码。这个源代码由一些文件组成,这些文件将创建一个库和许多编译成命令行工具的小.c文件(比如20个左右),每个文件都有自己的main()函数,这将使用该库。在unixy系统上,您可以使用makefile轻松地完成此操作,但对windows/VisualStudio世界最天真的转换涉及为每个工具创建一个单独的项目,尽管它可以工作,但需要大量的设置和工作在文件系统和项目/解决方案级别同步并且更难以导航。我考虑过使用不同的配置,其中除了一个.c文件之外的所有文件都被排除在构建之外,但这会使一次构建所有工具变得不可能。是否有一种从单个“事物”(项目、msbuil
我想从一个程序(exe文件)中执行一个批处理文件。我通常在程序(exe文件)执行时创建批处理文件。并将execl("START","",NULL);该函数正在调用批处理文件,但不幸的是新的命令窗口出现了,因为execl函数是进程启动并解析为“cmd.exe/k”.能否请您分享调用在后台执行批处理文件的函数的最简单方法,如果可能请分享代码片段。 最佳答案 不要使用start,而是使用cmd/c。预计到达时间:正如ChrisJester-Young在评论中指出的那样,这看起来像execlp("cmd","/c",batchfile,st
这是我的情况:我有一个与许多库链接的C项目(我还没有编写此应用程序),它还与MSVCR71.dll和MSVCP71.dll一起提供。即使没有这些DLL,该程序在我安装了MSVS2005的系统上运行良好(确实使用了MSVCR80.dll和MSVCP80.dll)。我已将此应用程序与在我的系统上编译的其他库链接起来。现在,在与这些库链接后,应用程序无法启动,因为它无法加载MSVCR80.dll和MSVCP80.dll...我说这很奇怪。加载程序向我显示错误R6034,应该使用list文件构建应用程序来解决这个问题。这个应用程序有什么问题?确认问题是由引入的库引起的。我可以在没有list或静